The design of electronic keyboards has progressed to the point where integrated circuit microprocessors may be utilized to control the scanning and the outputting of data and function codes from such keyboards. One example of such a keyboard is described in the Hewlett-Packard Journal of June 1975, Pages 20 and 21, which is entitled "A Microprocessor-Scanned Keyboard," by Otakar Blazek. In the keyboard described by Blazek, the microprocessor was programmed to scan a keyboard switching matrix. When a repeat key was depressed the microprocessor set a repeat counter to a predetermined count value in order to provide the delay interval for the first repeated signal. The repeat counter was then reinitialized to a second value to determine the repeat delay rate interval between subsequent repeated signals. This subroutine was obtained by software programming of the microprocessor which controlled the keyboard scan.
The approach taken by the Hewlett-Packard system is applicable for a number of keyboard applications. However, there are many instances in which the relatively high cost of such a microprocessor is not necessary for the particular keyboard application, particularly where external programming of the repeat rate and repeat delay rate counter is feasible because the keyboard forms a part of a complete data processing system. In the Hewlett-Packard system the counter is first preset to a particular count to determine the repeat delay rate and then the counter is decremented to zero. Again the same counter field is preset to determine the repeat rate and the counter is decremented again to zero. Reloading of the counter field with the repeat rate count and decrementing the counter to zero continues until the keyswitch being repeated is released.
In the externally programmable keyboard of the present invention, an eight bit counter is used in which all eight bits can be used for the delay rate, but in all cases the four least significant bits are used for the repeat rate; and both the repeat rate and the repeat delay rate are externally, independently programmable during the same programming period. Another significant difference between the two keyboards is that the Hewlett-Packard keyboard uses a parallel loading bus to preset the counter, while in the keyboard of the present invention, the repeat counter is loaded in a serial manner in the scan cycle following the issuance of a strobe for the repeatable keyswitch. This is an important distinction, since without implementation of a serial loading method and external programming, the repeat counter could not reasonably be implemented in a circuit contained in a standard 28-pin package, and therefore, either a nonstandard 34- or 36-pin package, or more probably, a 40-pin package would probably have to be utilized. The higher costs associated with such packages could well make an externally programmable integrated circuit keyboard unfeasible from a cost standpoint.